<?php
// https://developers.google.com/maps/documentation/directions/?hl=es
require 'Auxiliar_api.php';
class Api_google extends Aux_Api{
	// vehiculos se puede setear como
	// driving = auto ; walking = caminando ; bicycling = bicicleta
	private $vehiculo = "driving";
	private $idioma = "es";
	private $pais = "AR";
	private $gps = "false";
	private $distancia_medicos = array();
	private $empleados_coordenadas;
	private $direccion_usuario;
	
	public function __construct($matriz_empleados, $tipo_busqueda, $direccion_usuario){
		for ($x=0;$x<count($empleados); $x++) {
			array_push ($this->empleados_coordenadas, $matriz_empleados[$x][$tipo_busqueda]);
		}
		$calculo_de_distancias= $this->matriz($this->empleados_coordenadas, $direccion_usuario);
	}
	
		
	private function trans_a_coordenadas($direc_a_cordenadas){
		$transformada = $this->trans_direccion($direc_a_cordenadas);
		$resultado = json_decode(file_get_contents(sprintf("http://maps.googleapis.com/maps/api/geocode/json?address=$transformada&sensor=false")));
		$estado = $resultado->status;
		if ($estado == "OK"){
			$lat = $resultado->results[0]->geometry->location->lat;
			$long = $resultado->results[0]->geometry->location->lng; 
			$coordenadas = "$lat,$long"; // desde aca hay que cambiar si tenemo que separar las cordenadas		
			echo $coordenadas;
			return $coordenadas;
		}
		else {
			echo "La direccion no considio";
		}
	}
	
	
		public function matriz ($oringen_list, $destino_list ){
			$origen = $this->juntar_coordenadas($oringen_list);
			$destino = $this->juntar_coordenadas($destino_list);
 			$consulta = json_decode(file_get_contents(sprintf("http://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $origen . "&destinations=" . $destino . "&mode=$this->vehiculo&language=es-AR&sensor=$this->gps")));
 			$this->distancia_medicos = $consulta;
// 			return $this->distancia_medicos;
					
		}
		//ingreso datos de matriz para que me devuelva la distancia de todos los mediocos asi un destino en string
// 		public function doctores_a_destino_distancia_texto(){
		public function get_distancia_texto(){
			$dato = new ArrayObject();
			for ($i=0; $i< count($this->distancia_medicos->rows);$i++){
				$dato->append($this->distancia_medicos->rows[$i]->elements[0]->distance->text);
			}
			return $dato;
		}
		//ingresa datos de matriz para que me devueva la distancia de todos los medicos asia destino en intiger metros
// 		public function doctores_a_destino_distancia_valor(){
		public function get_distancia_valor(){
			$dato = new ArrayObject();
			for ($i=0; $i< count($this->distancia_medicos->rows);$i++){
				$dato->append($this->distancia_medicos->rows[$i]->elements[0]->distance->value);
			}
			return $dato;
		}
		//ingreso datos de matriz para que me devuelva la tiempo de todos los mediocos asi un destino en string
// 		public function doctores_a_distino_tiempo_texto(){
		public function get_tiempo_texto(){
			$dato = new ArrayObject();
			for ($i=0; $i< count($this->distancia_medicos->rows);$i++){
				$dato->append($this->distancia_medicos->rows[$i]->elements[0]->duration->text);
			}
			return $dato;
		}
		//ingreso datos de matriz para que me devuelva el tiempo de todos los mediocos hacia un destino en intiger segundos
// 		public function doctores_a_distino_tiempo_valor(){
		public function get_tiempo_valor(){
			$dato = new ArrayObject();
			for ($i=0; $i< count($this->distancia_medicos->rows);$i++){
				$dato->append($this->distancia_medicos->rows[$i]->elements[0]->duration->value);
			}
			return $dato;
		}
		
}



// Pablo, si descomentas lo de abajo tenes como tendria que hacer la consulta y las 
// respuestas. fijate que la consulta la hago en 
// y despues guardo la segunda consulta donde hago la pregunte del tiempo que tartan hasta el medico
// si vas cambiando los metodos te va dando los distintos valores
// los cambios son en el siguiente renglon y los cambios serian

// $prueba =$consulta->doctores_a_distino_tiempo_text();   
// $prueba =$consulta->doctores_a_distino_tiempo_valor();
// $prueba =$consulta->doctores_a_destino_distancia_text();
// $prueba =$consulta->doctores_a_destino_distancia_valor();


// -----esto tenes que descomentar-------- 

// $consulta = new Api();
// $or = array("-34.8040298,-58.2747867","-34.8033143,-58.274861");
// $des = array("-34.8903714,-56.1405735","-34.8903714,-56.140573");
// $consulta->matriz($or,$des);
// $prueba =$consulta->doctores_a_distino_tiempo_text();
// for ($i=0; $i< count($prueba);$i++){
// 	echo $prueba[$i],"<br>";
// }




			

